home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-05 / nbtest.zip / NBTEST.H < prev    next >
Text File  |  1992-03-26  |  7KB  |  131 lines

  1. /* C include file for NetBios applications */
  2.  
  3. /****************************************************************************
  4.  *                              CONSTANTS                                   *
  5.  ****************************************************************************/
  6.  
  7. /* Values for ncb_command */
  8.  
  9. #define N_RESET                 0x32    /* RESET LOCAL ATTACHMENT       */
  10. #define N_STATUS                0x33    /* RECEIVE STATUS OF SESSIONS   */
  11. #define N_CANCEL                0x35    /* CANCEL INDICATED REQUEST     */
  12. #define N_ADDNAME               0x30    /* ADD UNIQUE NAME              */
  13. #define N_ADDGROUPNAME          0x36    /* ADD NON UNIQUE NAME          */
  14. #define N_DELETENAME            0x31    /* DELETE NAME                  */
  15. #define N_CALL                  0x10    /* OPEN A SESSION               */
  16. #define N_LISTEN                0x11    /* LISTEN FOR A CALL            */
  17. #define N_HANGUP                0x12    /* END A SESSION                */
  18. #define N_SEND                  0x14    /* SEND                         */
  19. #define N_SENDMULTIPLE          0x17    /* SEND                         */
  20. #define N_RECEIVE               0x15    /* RECEIVE                      */
  21. #define N_RECEIVEANY            0x16    /* RECEIVE FROM ANY             */
  22. #define N_SESSIONSTATUS         0x34    /* SESSION STATUS               */
  23. #define N_SENDDATAGRAM          0x20    /* SEND A DATAGRAM              */
  24. #define N_RECEIVEDATAGRAM       0x21    /* RECEIVE A DATAGRAM           */
  25. #define N_SENDBROADCAST         0x22    /* SEND A BROADCAST DATAGRAM    */
  26. #define N_RECEIVEBROADCAST      0x23    /* RECEIVE A BROADCAST DATAGRAM */
  27.  
  28. #define N_NOWAIT                0x80    /* NO-WAIT FLAG                 */
  29.  
  30. /* Values for ncb_retcode */
  31.  
  32. #define E_GOOD_RET              0x00    /* GOOD RETURN                  */
  33. #define E_BAD_BUFLEN            0x01    /* ILLEGAL BUFFER LENGTH        */
  34. #define E_BAD_CMD               0x03    /* ILLEGAL COMMAND              */
  35. #define E_TIME_OUT              0x05    /* COMMAND TIMED OUT            */
  36. #define E_BUF_FULL              0x06    /* MESSAGE INCOMPLETE (NOT ERR  */
  37. #define E_SESNUM_ERR            0x08    /* SESSION NUMBER OUT OF RANGE  */
  38. #define E_NO_RESOURCE           0x09    /* NO RESOURCE AVAILABLE        */
  39. #define E_SES_CLOSE             0x0A    /* SESSION CLOSED               */
  40. #define E_CMD_ABORT             0x0B    /* COMMAND CANCELLED            */
  41. #define E_DUP_NAME              0x0D    /* DUPLICATE NAME               */
  42. #define E_TBL_FULL              0x0E    /* NAME TABLE FULL              */
  43. #define E_NO_DEL                0x0F    /* NAME HAS ACTIVE SESSION      */
  44. #define E_SESTBL_FUL            0x11    /* LOCAL SESSION TABLE FULL     */
  45. #define E_ALNUM_ERR             0x13    /* ILLEGAL NAMES NUMBER         */
  46. #define E_NOFND_CALLNAME        0x14    /* COULDN'T FIND CALLED NAME    */
  47. #define E_BAD_NAME              0x15    /* CAN'T PUT * IN NCB_NAME      */
  48. #define E_NAME_USED             0x16    /* NAME IN USE                  */
  49. #define E_EQL_NAMES             0x17    /* NAME DELETED                 */
  50. #define E_SES_BAD               0x18    /* SESSION ENDED ABNORMALLY     */
  51. #define E_MUL_NAME              0x19    /* NAME CONFLICT DETECTED       */
  52. #define E_INCOM_REM             0x1A    /* INCOMPATIBLE REMOTE DEVICE   */
  53. #define E_LANA_LOCKED           0x21    /* INTERFACE BUSY               */
  54. #define E_MAX_CMD               0x22    /* TOO MANY COMMANDS            */
  55. #define E_LANA_NUM              0x23    /* INVALID LANA_NUM VALUE       */
  56. #define E_CMD_CNL               0x24    /* COMMAND CMPLTD WHILE CANCEL  */
  57. #define E_NO_CNL                0x26    /* COMMAND NO VALID TO CANCEL   */
  58. #define E_YS_ERR                0x40    /* SYSTEM ERROR                 */
  59. #define E_CON_CARRIER_NOT_ME    0x41    /* CONTINUOUS CARRIER (I did)   */
  60. #define E_CON_CARRIER_ME        0x42    /* CONTINUOUS CARRIER (I didn't)*/
  61. #define E_NO_CARRIER            0x43    /* NO CARRIER DETECTED          */
  62.  
  63. /****************************************************************************
  64.  *                          TYPE DEFINITIONS                                *
  65.  ****************************************************************************/
  66.  
  67. /* define BYTE/WORD/DWORD as unsigned char/int/long */
  68. typedef unsigned char BYTE;
  69. typedef unsigned int  WORD;
  70. typedef unsigned long DWORD;
  71.  
  72. /* NCB structure */
  73. typedef struct ncb_tag
  74.     {
  75.     BYTE        ncb_command;        /* ncb COMMAND FIELD */
  76.     BYTE        ncb_retcode;        /* ncb RETURN CODE */
  77.     BYTE        ncb_lsn;            /* ncb LOCAL SESSION NUMBER */
  78.     BYTE        ncb_num;            /* ncb ALIAS NUMBER */
  79.     BYTE _far * ncb_buffer;         /* ncb MESSAGE BUFFER */
  80.     WORD        ncb_length;         /* ncb LENGTH (IN BYTES) */
  81.     BYTE        ncb_callname[16];   /* ncb NAME ON REMOTE ATTACHMENT */
  82.     BYTE        ncb_name[16];       /* ncb ALIAS NAME */
  83.     BYTE        ncb_rto;            /* ncb RECEIVE TIMEOUT */
  84.     BYTE        ncb_sto;            /* ncb SEND TIMEOUT */
  85.     void        (_interrupt _far *ncb_post)();
  86.                                     /* ncb POINTER TO POST ROUTINE */
  87.     BYTE        ncb_lana_num;       /* ncb ADAPTER NR (0 or 1) */
  88.     BYTE        ncb_cmd_cplt;       /* ncb COMMAND PENDING INDICATION */
  89.     BYTE        ncb_reserved[14];   /* ncb RESERVED AREA */
  90.     } NCB;
  91.  
  92. /* name table entry */
  93. typedef struct name_entry_tag
  94.     {
  95.     BYTE    name[16];           /* name */
  96.     BYTE    name_nr;            /* # name */
  97.     BYTE    name_stat;          /* name status */
  98.     } NAME_ENTRY;
  99.  
  100. /* adapter status structure */
  101. typedef struct adapter_stat
  102.     {
  103.     BYTE    stat_uin[6];        /* unit identification number */
  104.     BYTE    stat_jumper;        /* external jumper */
  105.     BYTE    stat_selftest;      /* results of last self-test */
  106.     BYTE    stat_version[2];    /* software version high/low */
  107.     WORD    stat_period;        /* duration of reporting period in minutes */
  108.     WORD    stat_crc;           /* # CRC errors */
  109.     WORD    stat_align;         /* # alignment errors */
  110.     WORD    stat_collision;     /* # collisions */
  111.     WORD    stat_abort;         /* # aborted transmissions */
  112.     DWORD   stat_txpacket;      /* # ok transmitted packets */
  113.     DWORD   stat_rxpacket;      /* # ok received packets */
  114.     WORD    stat_retx;          /* # retransmissions */
  115.     WORD    stat_rxexhaust;     /* # receive exhausted */
  116.     BYTE    stat_rsv1[8];
  117.     WORD    stat_freencb;       /* # free command buffers */
  118.     WORD    stat_cfgncb;        /* max # NCB's */
  119.     WORD    stat_maxncb;        /* max # command buffers */
  120.     BYTE    stat_rsv2[4];
  121.     WORD    stat_pendsess;      /* # pending sessions */
  122.     WORD    stat_cfgsess;       /* max pending sessions */
  123.     WORD    stat_maxsess;       /* max # sessions */
  124.     WORD    stat_psize;         /* maximum packet size */
  125.     WORD    stat_nrnames;       /* # names in local name table */
  126.  
  127.     NAME_ENTRY
  128.             stat_localname[16]; /* local name table */
  129.     } ADAPTER_STATUS;
  130.  
  131.